Maxsea Routes to GPX

Convert routes from MaxSea to GPX. Note this only supports routes pasted from the clipboard using “Route Center” with all columns. Use at your own risk!

by Scott Emmons - 2010-05-17

max2open.pl.kml

#!/usr/bin/perl

# Convert routes from MaxSea to GPX. Note this only supports routes
# pasted from the clipboard using "Route Center" with all columns.
# Use at your own risk!
#
# Scott Emmons - 2010-05-17 - Created

print "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n";
print "<gpx version=\"1.1\" creator=\"max2open\" xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" xmlns=\"http://www.topografix.com/GPX/1/1\" xsi:schemaLocation=\"http://www.topografix.com/GPX/1/1 http://www.topografix.com/GPX/1/1/gpx.xsd\" xmlns:opencpn=\"http://www.opencpn.org\">\n";
print "  <rte>\n";
print "    <name>Imported route</name>\n";
print "    <number>1</number>\n";

while(<>) {
    @row=split(/\t/);
    $name=$row[0];
    if ($name ne "") {
        ($latd,$latm,$lath)=split(/[\xb0 \r\n]/,$row[27]);
        ($lond,$lonm,$lonh)=split(/[\xb0 \r\n]/,$row[28]);
        $lat=$latd+($latm/60.0);
        $lon=$lond+($lonm/60.0);
        if ($lath eq "S") {
            $lat=-$lat;
        }
        if ($lonh eq "W") {
            $lon=-$lon;
        }
        print "      <rtept lat=\"$lat\" lon=\"$lon\">\n";
        print "        <name>$name</name>\n";
        print "        <sym>diamond</sym>\n";
        print "        <type>WPT</type>\n";
        print "        <extensions>\n";
        print "          <opencpn:prop>A,1,1,0,1</opencpn:prop>\n";
        print "        </extensions>\n";
        print "      </rtept>\n";
    }
}

print "  </rte>\n";
print "</gpx>\n";